<?php
namespace Plu\Library\Services\Redis\Config;

use Plu\Library\Services\ServiceBase;

class SystemConfigRedis extends ServiceBase {
    private $handler;

    public function __construct() {
        $this->handler = $this->getRedis('config');
    }

    public function getItemById($key) {
        $item = $this->handler->hGet('config:list', $key);

        if (!empty($item)) {
            $item = json_decode($item, true);
            return $item;
        }

        return null;
    }

    public function getArrayItem($key) {
        $item = $this->getItemById($key);

        if (!is_null($item)) {
            return explode(",", $item);
        }

        return $item;
    }

    public function getBoolItem($key) {
        $item = $this->getItemById($key);

        if (!is_null($item)) {
            return $item == "true";
        }

        return $item;
    }

    public function getIntItem($key) {
        $item = $this->getItemById($key);

        if (!is_null($item)) {
            return (int)$item;
        }

        return $item;
    }

    public function getFloatItem($key) {
        $item = $this->getItemById($key);

        if (!is_null($item)) {
            return (float)$item;
        }

        return $item;
    }

    public function getStringItem($key) {
        $item = $this->getItemById($key);

        if (!is_null($item)) {
            return (string)$item;
        }

        return $item;
    }
}
